home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 March - Disc 1 / Macworld (1999-03) (Disk 1).dmg / Shareware World / Utilities / Text Processing / Alpha / Tcl / Modes / javaScriptMode.tcl < prev    next >
Encoding:
Text File  |  1998-08-07  |  3.0 KB  |  100 lines  |  [TEXT/ALFA]

  1. ## -*-Tcl-*-
  2.  # ###################################################################
  3.  #  JavaScript mode - tools for editing JavaScript documents
  4.  # 
  5.  #  FILE: "javaScriptMode.tcl"
  6.  #                                    created: 97-02-09 14.00.54 
  7.  #                                last update: 98-08-07 11.09.26 
  8.  #  Author: Johan Linde
  9.  #  E-mail: <jl@theophys.kth.se>
  10.  #     www: <http://bach.theophys.kth.se/~jl/Alpha.html>
  11.  #  
  12.  # Version: 1.1.1
  13.  # 
  14.  # Copyright 1997, 1998 by Johan Linde
  15.  #  
  16.  # This software may be used freely, and distributed freely, as long as the 
  17.  # receiver is not obligated in any way by receiving it.
  18.  #  
  19.  # If you make improvements to this file, please share them!
  20.  # 
  21.  # ###################################################################
  22.  ##
  23.  
  24. if {[alpha::package vsatisfies ${alpha::version} 7.1b1]} {
  25. alpha::mode JScr 1.1.1 JScrDummy {*.js *.JS} {
  26.     electricBraces electricColon electricSemicolon electricTab } {
  27. } uninstall this-file maintainer {
  28.     "Johan Linde" jl@theophys.kth.se <http://www.theophys.kth.se/~jl/Alpha.html>
  29. } help {file "HTML Help"}
  30. catch {unset JScrmodeVars(elecRBrace)}
  31. catch {unset JScrmodeVars(elecLBrace)}
  32. catch {unset JScrmodeVars(electricSemi)}
  33. catch {unset JScrmodeVars(electricTab)}
  34. catch {unset JScrmodeVars(electricColon)}
  35. } else {
  36. ;alpha::mode JScr 1.1.1 JScrDummy {*.js *.JS} {} {
  37. } uninstall this-file maintainer {
  38.     "Johan Linde" jl@theophys.kth.se <http://www.theophys.kth.se/~jl/Alpha.html>
  39. } help {file "HTML Help"}
  40. newPref f elecRBrace 1 JScr
  41. newPref f elecLBrace 1 JScr
  42. newPref f electricSemi 1 JScr
  43. newPref f electricTab 1 JScr
  44. newPref f electricColon 1 JScr
  45. }
  46.  
  47. newPref v prefixString {//}  JScr
  48. newPref f wordWrap 0 JScr
  49. newPref v funcExpr {^function *([+-a-zA-Z0-9]+)} JScr
  50. newPref v parseExpr {^function *([+-a-zA-Z0-9]+)} JScr
  51. newPref v wordBreak {\w+} JScr
  52. newPref v wordBreakPreface {\W} JScr
  53. newPref v stringColor    green JScr
  54. newPref v commentColor red JScr
  55. newPref v keywordColor blue JScr
  56.  
  57.  
  58. regModeKeywords  -e {//} -b {/*} {*/} -c $JScrmodeVars(commentColor) -k $JScrmodeVars(keywordColor)  -s $JScrmodeVars(stringColor) JScr {
  59.     break case continue default delete do export for import in function if else new return switch this typeof var void while with true false }
  60.  
  61.  
  62. proc JScrDummy {} {}
  63.  
  64.  
  65. proc JScr::carriageReturn {} {
  66.     if {[lookAt [expr [getPos] - 1]] == ":"} {
  67.         if { [lookAt [getPos]] == "\r" } {
  68.             bind::IndentLine
  69.             endOfLine
  70.             insertText "\r"
  71.         } else {
  72.             set pos [getPos]
  73.             endOfLine
  74.             set t [getText $pos [getPos]]
  75.             replaceText $pos [getPos] ""
  76.             bind::IndentLine
  77.             endOfLine
  78.             insertText "\r"
  79.             insertText $t
  80.         }
  81.     } else {
  82.         insertText "\r"
  83.     }
  84.     catch {bind::IndentLine}
  85. }
  86.  
  87. proc JScr::DblClick {from to} {
  88.     global HOME
  89.     select $from $to
  90.     set word [getText $from $to]
  91.     if {[grep "^${word}( |$)" [lindex [glob $HOME:JSreference:index*] 0]] != ""} {
  92.         editMark [lindex [glob $HOME:JSreference:JS*] 0] $word -r
  93.     }
  94. }
  95.  
  96. set commentCharacters(JScr:General) [list "*" "//"]
  97. set commentCharacters(JScr:Paragraph) [list "/* " " */" " * "]
  98. set commentCharacters(JScr:Box) [list "/*" 2 "*/" 2 "*" 3]
  99.  
  100.